--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lang/README.ru.md v4.4.0-rc.2 (8c81399b) Text, 14.09 KB
Reticulum MeshChatX
Существенно доработанный и функционально расширенный форк Reticulum MeshChat от Liam Cottle.
Этот проект независим от оригинального Reticulum MeshChat и не связан с ним.
• Сайт: meshchatx.com
• Исходный код: git.quad4.io/RNS-Things/MeshChatX
• Официальное зеркало: github.com/Sudo-Ivan/MeshChatX — пока также используется для сборок Windows и macOS.
• Журнал изменений: CHANGELOG.md
• TODO: Boards
Важные отличия от Reticulum MeshChat
• Используется LXST
• Peewee ORM заменён на прямой SQL
• Axios заменён на нативный T383838fetch
• Актуальный Electron
• Колёса T383838.whl с веб-сервером и встроенным фронтендом для разных сценариев развёртывания
• i18n
• PNPM и Poetry для зависимостей
│ [!WARNING] MeshChatX не гарантирует совместимость данных со старыми версиями Reticulum MeshChat.
│ Сделайте резервную копию перед миграцией или тестированием.
│ [!WARNING] Устаревшие системы пока не полностью поддерживаются. Текущие требования: Python T383838>=3.11
│ и Node T383838>=24.
Требования
• Python T383838>=3.11 (из T383838pyproject.toml)
• Node.js T383838>=24 (из T383838package.json)
• pnpm T38383810.32.1 (из T383838package.json)
• Poetry (используется в T383838Taskfile.yml и CI)
T282828
task install
task lint:all
task test:all
task build:all
Способы установки
Выберите способ в соответствии со средой и форматом пакета.
┌─────────────────────┬─────────────────────┬──────────────┬───────────────────────────────────────┐
│ Метод │ Включает фронтенд │ Архитектуры │ Лучше всего для │
├─────────────────────┼─────────────────────┼──────────────┼───────────────────────────────────────┤
│ Docker-образ │ Да │ T383838linux/amd64… │ Быстрый запуск на серверах Linux │
│ Python wheel (T383838.whl) │ Да │ Любая архит… │ Безголовый/веб-сервер без сборки Node │
│ Linux AppImage │ Да │ T383838x64, T383838arm64 │ Портативное использование на ПК │
│ Debian-пакет (T383838.deb) │ Да │ T383838x64, T383838arm64 │ Установка на Debian/Ubuntu │
│ RPM-пакет (T383838.rpm) │ Да │ Зависит от … │ Fedora/RHEL/openSUSE │
│ Из исходников │ Собирается локально │ Архитектура… │ Разработка и кастомные сборки │
└─────────────────────┴─────────────────────┴──────────────┴───────────────────────────────────────┘
Примечания:
• Релизный workflow явно собирает Linux T383838x64 и T383838arm64 AppImage + DEB.
• RPM также собирается при попытке и загружается при успехе.
Быстрый старт: Docker
T282828
docker compose up -d
Compose-файл по умолчанию:
• T383838127.0.0.1:8000 на хосте -> порт T3838388000 контейнера
• T383838./meshchat-config -> T383838/config для данных
Если возникают ошибки прав доступа:
T282828
sudo chown -R T79c0ff1000:1000 ./meshchat-config
Установка из релизных артефактов
1) Linux AppImage (x64/arm64)
1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.AppImage из релизов.
2. Сделайте исполняемым и запустите:
T282828
chmod +x ./ReticulumMeshChatX-v*-linux-*.AppImage
./ReticulumMeshChatX-v*-linux-*.AppImage
2) Debian/Ubuntu T383838.deb (x64/arm64)
1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.deb.
2. Установите:
T282828
sudo apt install ./ReticulumMeshChatX-v*-linux-*.deb
3) RPM-системы
1. Скачайте T383838ReticulumMeshChatX-v<версия>-linux-<арх>.rpm, если есть в релизе.
2. Установите:
T282828
sudo rpm -Uvh ./ReticulumMeshChatX-v*-linux-*.rpm
4) Python wheel (T383838.whl)
В релизных wheel включены собранные веб-ресурсы.
T282828
pip install ./reticulum_meshchatx-*-py3-none-any.whl
meshchatx --headless
T383838pipx также поддерживается:
T282828
pipx install ./reticulum_meshchatx-*-py3-none-any.whl
Запуск из исходников (режим веб-сервера)
Для разработки или локальной сборки.
T282828
git clone https://git.quad4.io/RNS-Things/MeshChatX.git
Tffa657cd MeshChatX
corepack Tffa657enable
pnpm install
pip install poetry
poetry install
pnpm run build-frontend
poetry run python -m meshchatx.meshchat --headless --host T79c0ff127.0.0.1
Запуск в песочнице (Linux)
Чтобы запускать нативный T383838meshchatx (псевдоним: T383838meshchat) с дополнительной изоляцией файловой системы, можно использовать Firejail или Bubblewrap (T383838bwrap), сохраняя обычный сетевой доступ для Reticulum и веб-интерфейса. Полные примеры (pip/pipx, Poetry, USB-serial) в:
Та же страница отображается во встроенной Документации (документация MeshChatX), когда она отдаётся из T383838meshchatx-docs.
Сборка настольных пакетов из исходников
Скрипты заданы в T383838package.json и T383838Taskfile.yml.
Linux x64 AppImage + DEB
T282828
pnpm run dist:linux-x64
Linux arm64 AppImage + DEB
T282828
pnpm run dist:linux-arm64
RPM
T282828
pnpm run dist:rpm
Через Task:
T282828
task dist:fe:rpm
Поддержка архитектур
• Docker: T383838amd64, T383838arm64
• Linux AppImage: T383838x64, T383838arm64
• Linux DEB: T383838x64, T383838arm64
• Windows: T383838x64, T383838arm64 (скрипты сборки есть)
• macOS: скрипты сборки (T383838arm64, T383838universal) для локальных сред
• Android: проект и CI в репозитории
Android
Конфигурация
┌────────────────────────┬──────────────────────────────────────┬──────────────┬───────────────────┐
│ Аргумент │ Переменная окружения │ По умолчанию │ Описание │
├────────────────────────┼──────────────────────────────────────┼──────────────┼───────────────────┤
│ T383838--host │ T383838MESHCHAT_HOST │ T383838127.0.0.1 │ Адрес привязки в… │
│ T383838--port │ T383838MESHCHAT_PORT │ T3838388000 │ Порт веб-сервера │
│ T383838--no-https │ T383838MESHCHAT_NO_HTTPS │ T383838false │ Отключить HTTPS │
│ T383838--ssl-cert / T383838--ssl-key │ T383838MESHCHAT_SSL_CERT / T383838MESHCHAT_SSL_KEY │ (нет) │ Пути к PEM-серти… │
│ T383838--rns-log-level │ T383838MESHCHAT_RNS_LOG_LEVEL │ (нет) │ Уровень лога сте… │
│ T383838--headless │ T383838MESHCHAT_HEADLESS │ T383838false │ Не открывать бра… │
│ T383838--auth │ T383838MESHCHAT_AUTH │ T383838false │ Базовая аутентиф… │
│ T383838--storage-dir │ T383838MESHCHAT_STORAGE_DIR │ T383838./storage │ Каталог данных │
│ T383838--public-dir │ T383838MESHCHAT_PUBLIC_DIR │ авто/bundled │ Каталог фронтенд… │
└────────────────────────┴──────────────────────────────────────┴──────────────┴───────────────────┘
Ветки
┌────────┬────────────────────────────────────────────────────────────────────┐
│ Ветка │ Назначение │
├────────┼────────────────────────────────────────────────────────────────────┤
│ T383838master │ Стабильные релизы. Только код для продакшена. │
│ T383838dev │ Активная разработка. Возможны нестабильные или неполные изменения. │
└────────┴────────────────────────────────────────────────────────────────────┘
Разработка
Типичные задачи из T383838Taskfile.yml:
T282828
task install
task lint:all
task test:all
task build:all
Сокращения T383838Makefile:
┌──────────────┬─────────────────────────────────────────┐
│ Команда │ Описание │
├──────────────┼─────────────────────────────────────────┤
│ T383838make install │ Установить зависимости pnpm и poetry │
│ T383838make run │ Запуск MeshChatX через poetry │
│ T383838make build │ Сборка фронтенда │
│ T383838make lint │ eslint и ruff │
│ T383838make test │ Тесты фронтенда и бэкенда │
│ T383838make clean │ Удалить артефакты сборки и node_modules │
└──────────────┴─────────────────────────────────────────┘
Версионирование
Текущая версия в репозитории: T3838384.4.0.
• Источник версии JS/Electron — T383838package.json.
• T383838meshchatx/src/version.py синхронизируется из T383838package.json:
T282828
pnpm run version:sync
Для согласованных релизов выравнивайте поля версий где нужно (T383838package.json, T383838pyproject.toml, T383838meshchatx/__init__.py).
Безопасность
• Встроенные проверки целостности и HTTPS/WSS по умолчанию в приложении
• CI-сканирование в T383838.gitea/workflows/
Добавление языка
Локали обнаруживаются автоматически. Достаточно одного JSON-файла:
1. Сгенерировать пустой шаблон из T383838en.json:
T282828
python scripts/generate_locale_template.py
Создаётся T383838locales.json со всеми ключами и пустыми строками.
2. Переименовать и переместить:
T282828
mv locales.json meshchatx/src/frontend/locales/xx.json
3. В начале файла задать T383838_languageName — нативное имя языка (например T383838"Espanol", T383838"Francais"). Отображается в выборе языка.
4. Перевести остальные значения.
5. Проверить ключи: T383838pnpm test -- tests/frontend/i18n.test.js --run
Других изменений кода не требуется. Приложение, селектор языка и тесты используют T383838meshchatx/src/frontend/locales/ на этапе сборки.
Авторы
• Liam Cottle — оригинальный Reticulum MeshChat
• RFnexus — парсер Micron (JavaScript)
• markqvist — Reticulum, LXMF, LXST
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────